#include "main.h"

int main(int a,char **arg){
    printf("Hello world\r\n");
    

    int arr[10]={2,4,6,7,8,1,5,9,3,0};

    vector<int> vecList;
    for (size_t i = 0; i < 10; i++)
    {
        vecList.push_back(arr[i]);
    }
    // 可以用向量直接去初始化链表，也可以单独去增加链表节点
    linkList<int> lst=linkList<int>(vecList);

    // for(int i=0;i<10;i++){
    //     lst.addNodeAtHead(arr[i]);
    // }

    // for(int i=0;i<10;i++){
    //     lst.addNode(arr[i]);
    // }

    lst.showList();

    lst.localRvsList();
    lst.showList();

    lst.headRvsList();
    lst.showList();

    lst.iterRvsList();
    lst.showList();

    vector<int> vec;
    for (size_t i = 0; i < 10; i++)
    {
        vec.push_back(arr[i]);
    }
    
    for (size_t i = 0; i < 10; i++)
    {
        cout<< vec[i] <<" -> ";
    }
    cout<<"end"<<endl;

    // BubbleSort(vec);
    // InsertSort(vec);
    // InsertSort<int>(vec);
    // QuickSort(vec,0,vec.size()-1);
    // SelectSort<int>(vec);
    // HeapSort(vec);
    vector<int> vecIndex=IndexHeapSort(vec);
    for (size_t i = 0; i < 10; i++)
    {
        cout<< "vec["<<vecIndex[i] <<"]="<<vec[vecIndex[i]]<<" -> ";
    }
    cout<<"end"<<endl;

    for (size_t i = 0; i < 10; i++)
    {
        cout<< vec[i] <<" -> ";
    }
    cout<<"end"<<endl;
    
    // MergeSort(vec,0,vec.size());
    // for (size_t i = 0; i < 10; i++)
    // {
    //     cout<< vec[i] <<" -> ";
    // }
    // cout<<"end"<<endl;

    vector<int> index;
    index=algorithm::TwoSum(vec,17);

    algorithm::TestAddTwoNumbs();
    return 0;
}